home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / asm / adisv1_3.lha / src / opcodes.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-24  |  77.3 KB  |  1,106 lines

  1. /*
  2.  * Change history
  3.  * $Log:    opcodes.c,v $
  4.  * Revision 3.0  93/09/24  17:54:19  Martin_Apel
  5.  * New feature: Added extra 68040 FPU opcodes
  6.  * 
  7.  * Revision 2.2  93/07/18  22:56:30  Martin_Apel
  8.  * *** empty log message ***
  9.  * 
  10.  * Revision 2.1  93/07/08  20:49:58  Martin_Apel
  11.  * Bug fix: Enabled addressing mode 0 for mmu30 instruction
  12.  * 
  13.  * Revision 2.0  93/07/01  11:54:33  Martin_Apel
  14.  * *** empty log message ***
  15.  * 
  16.  * Revision 1.13  93/07/01  11:43:07  Martin_Apel
  17.  * Bug fix: TST.x Ax for 68020 enabled (Error in 68020 manual)
  18.  * 
  19.  * Revision 1.12  93/06/19  12:11:54  Martin_Apel
  20.  * Major mod.: Added full 68030/040 support
  21.  * 
  22.  * Revision 1.11  93/06/16  20:29:10  Martin_Apel
  23.  * Minor mod.: Removed #ifdef FPU_VERSION and #ifdef MACHINE68020
  24.  * Minor mod.: Added variables for 68030 / 040 support
  25.  * 
  26.  * Revision 1.10  93/06/03  20:29:25  Martin_Apel
  27.  * 
  28.  * 
  29.  */
  30.  
  31. #include <exec/types.h>
  32. #include <stdio.h>
  33. #include "defs.h"
  34.  
  35. static char rcsid [] = "$Id: opcodes.c,v 3.0 93/09/24 17:54:19 Martin_Apel Exp $";
  36.  
  37. struct opcode_entry opcode_table [] =
  38. {
  39.  
  40. { ori_b    , "ORI.B"   , ACC_BYTE, 0xfd, 0x03, 1024 }, /* 0000 0000 00 */
  41. { immediate, "ORI.W"   , ACC_WORD, 0xfd, 0x03, 1024 }, /* 0000 0000 01 */
  42. { immediate, "ORI.L"   , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0000 0000 10 */
  43. { chkcmp2  , "C  2.B"  , ACC_BYTE, 0xe4, 0x0f, 1026 }, /* 0000 0000 11 */
  44. { bit_reg  , "BTST"    ,        0, 0xfd, 0x1f, 1037 }, /* 0000 0001 00 */
  45. { bit_reg  , "BCHG"    ,        0, 0xfd, 0x03, 1037 }, /* 0000 0001 01 */
  46. { bit_reg  , "BCLR"    ,        0, 0xfd, 0x03, 1037 }, /* 0000 0001 10 */
  47. { bit_reg  , "BSET"    ,        0, 0xfd, 0x03, 1037 }, /* 0000 0001 11 */
  48. { immediate, "ANDI.B"  , ACC_BYTE, 0xfd, 0x03, 1024 }, /* 0000 0010 00 */
  49. { immediate, "ANDI.W"  , ACC_WORD, 0xfd, 0x03, 1024 }, /* 0000 0010 01 */
  50. { immediate, "ANDI.L"  , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0000 0010 10 */
  51. { chkcmp2  , "C  2.W"  , ACC_WORD, 0xe4, 0x0f, 1026 }, /* 0000 0010 11 */
  52. { bit_reg  , "BTST"    ,        1, 0xfd, 0x1f, 1037 }, /* 0000 0011 00 */
  53. { bit_reg  , "BCHG"    ,        1, 0xfd, 0x03, 1037 }, /* 0000 0011 01 */
  54. { bit_reg  , "BCLR"    ,        1, 0xfd, 0x03, 1037 }, /* 0000 0011 10 */
  55. { bit_reg  , "BSET"    ,        1, 0xfd, 0x03, 1037 }, /* 0000 0011 11 */
  56. { immediate, "SUBI.B"  , ACC_BYTE, 0xfd, 0x03, 1026 }, /* 0000 0100 00 */
  57. { immediate, "SUBI.W"  , ACC_WORD, 0xfd, 0x03, 1026 }, /* 0000 0100 01 */
  58. { immediate, "SUBI.L"  , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0000 0100 10 */
  59. { chkcmp2  , "C  2.L"  , ACC_LONG, 0xe4, 0x0f, 1026 }, /* 0000 0100 11 */
  60. { bit_reg  , "BTST"    ,        2, 0xfd, 0x1f, 1037 }, /* 0000 0101 00 */
  61. { bit_reg  , "BCHG"    ,        2, 0xfd, 0x03, 1037 }, /* 0000 0101 01 */
  62. { bit_reg  , "BCLR"    ,        2, 0xfd, 0x03, 1037 }, /* 0000 0101 10 */
  63. { bit_reg  , "BSET"    ,        2, 0xfd, 0x03, 1037 }, /* 0000 0101 11 */
  64. { immediate, "ADDI.B"  , ACC_BYTE, 0xfd, 0x03, 1026 }, /* 0000 0110 00 */
  65. { immediate, "ADDI.W"  , ACC_WORD, 0xfd, 0x03, 1026 }, /* 0000 0110 01 */
  66. { immediate, "ADDI.L"  , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0000 0110 10 */
  67. { immediate, "CALLM"   ,        0, 0xe4, 0x0f, 1027 }, /* 0000 0110 11 */
  68. { bit_reg  , "BTST"    ,        3, 0xfd, 0x1f, 1037 }, /* 0000 0111 00 */
  69. { bit_reg  , "BCHG"    ,        3, 0xfd, 0x03, 1037 }, /* 0000 0111 01 */
  70. { bit_reg  , "BCLR"    ,        3, 0xfd, 0x03, 1037 }, /* 0000 0111 10 */
  71. { bit_reg  , "BSET"    ,        3, 0xfd, 0x03, 1037 }, /* 0000 0111 11 */
  72. { bit_mem  , "BTST"    ,        0, 0xfd, 0x0f, 1026 }, /* 0000 1000 00 */
  73. { bit_mem  , "BCHG"    ,        0, 0xfd, 0x03, 1026 }, /* 0000 1000 01 */
  74. { bit_mem  , "BCLR"    ,        0, 0xfd, 0x03, 1026 }, /* 0000 1000 10 */
  75. { bit_mem  , "BSET"    ,        0, 0xfd, 0x03, 1026 }, /* 0000 1000 11 */
  76. { bit_reg  , "BTST"    ,        4, 0xfd, 0x1f, 1037 }, /* 0000 1001 00 */
  77. { bit_reg  , "BCHG"    ,        4, 0xfd, 0x03, 1037 }, /* 0000 1001 01 */
  78. { bit_reg  , "BCLR"    ,        4, 0xfd, 0x03, 1037 }, /* 0000 1001 10 */
  79. { bit_reg  , "BSET"    ,        4, 0xfd, 0x03, 1037 }, /* 0000 1001 11 */
  80. { immediate, "EORI.B"  , ACC_BYTE, 0xfd, 0x03, 1024 }, /* 0000 1010 00 */
  81. { immediate, "EORI.W"  , ACC_WORD, 0xfd, 0x03, 1024 }, /* 0000 1010 01 */
  82. { immediate, "EORI.L"  , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0000 1010 10 */
  83. { cas      , "CAS.B"   , ACC_BYTE, 0xfc, 0x03, 1040 }, /* 0000 1010 11 */
  84. { bit_reg  , "BTST"    ,        5, 0xfd, 0x1f, 1037 }, /* 0000 1011 00 */
  85. { bit_reg  , "BCHG"    ,        5, 0xfd, 0x03, 1037 }, /* 0000 1011 01 */
  86. { bit_reg  , "BCLR"    ,        5, 0xfd, 0x03, 1037 }, /* 0000 1011 10 */
  87. { bit_reg  , "BSET"    ,        5, 0xfd, 0x03, 1037 }, /* 0000 1011 11 */
  88. { immediate, "CMPI.B"  , ACC_BYTE, 0xfd, 0x0f, 1026 }, /* 0000 1100 00 */
  89. { immediate, "CMPI.W"  , ACC_WORD, 0xfd, 0x0f, 1026 }, /* 0000 1100 01 */
  90. { immediate, "CMPI.L"  , ACC_LONG, 0xfd, 0x0f, 1026 }, /* 0000 1100 10 */
  91. { cas      , "CAS.W"   , ACC_WORD, 0xfc, 0x03, 1041 }, /* 0000 1100 11 */
  92. { bit_reg  , "BTST"    ,        6, 0xfd, 0x1f, 1037 }, /* 0000 1101 00 */
  93. { bit_reg  , "BCHG"    ,        6, 0xfd, 0x03, 1037 }, /* 0000 1101 01 */
  94. { bit_reg  , "BCLR"    ,        6, 0xfd, 0x03, 1037 }, /* 0000 1101 10 */
  95. { bit_reg  , "BSET"    ,        6, 0xfd, 0x03, 1037 }, /* 0000 1101 11 */
  96. { moves    , "MOVES.B" , ACC_BYTE, 0xfc, 0x03, 1026 }, /* 0000 1110 00 */
  97. { moves    , "MOVES.W" , ACC_WORD, 0xfc, 0x03, 1026 }, /* 0000 1110 01 */
  98. { moves    , "MOVES.L" , ACC_LONG, 0xfc, 0x03, 1026 }, /* 0000 1110 10 */
  99. { cas      , "CAS.L"   , ACC_LONG, 0xfc, 0x03, 1042 }, /* 0000 1110 11 */
  100. { bit_reg  , "BTST"    ,        7, 0xfd, 0x1f, 1037 }, /* 0000 1111 00 */
  101. { bit_reg  , "BCHG"    ,        7, 0xfd, 0x03, 1037 }, /* 0000 1111 01 */
  102. { bit_reg  , "BCLR"    ,        7, 0xfd, 0x03, 1037 }, /* 0000 1111 10 */
  103. { bit_reg  , "BSET"    ,        7, 0xfd, 0x03, 1037 }, /* 0000 1111 11 */
  104. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0000 00 */
  105. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0001 0000 01 */
  106. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0000 10 */
  107. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0000 11 */
  108. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0001 00 */
  109. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0001 01 */
  110. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0001 10 */
  111. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0001 11 */
  112. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0010 00 */
  113. { illegal  , 0         ,        1, 0xff, 0xff, 1026 }, /* 0001 0010 01 */
  114. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0010 10 */
  115. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0010 11 */
  116. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0011 00 */
  117. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0011 01 */
  118. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0011 10 */
  119. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0011 11 */
  120. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0100 00 */
  121. { illegal  , 0         ,        2, 0xff, 0xff, 1026 }, /* 0001 0100 01 */
  122. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0100 10 */
  123. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0100 11 */
  124. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0101 00 */
  125. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0101 01 */
  126. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0101 10 */
  127. { illegal  , 0         ,        2, 0xff, 0xff, 1026 }, /* 0001 0101 11 */
  128. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0110 00 */
  129. { illegal  , 0         ,        3, 0xff, 0xff, 1026 }, /* 0001 0110 01 */
  130. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0110 10 */
  131. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0110 11 */
  132. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0111 00 */
  133. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0111 01 */
  134. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 0111 10 */
  135. { illegal  , 0         ,        3, 0xff, 0xff, 1026 }, /* 0001 0111 11 */
  136. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1000 00 */
  137. { illegal  , 0         ,        4, 0xff, 0xff, 1026 }, /* 0001 1000 01 */
  138. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1000 10 */
  139. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1000 11 */
  140. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1001 00 */
  141. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1001 01 */
  142. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1001 10 */
  143. { illegal  , 0         ,        4, 0xff, 0xff, 1026 }, /* 0001 1001 11 */
  144. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1010 00 */
  145. { illegal  , 0         ,        5, 0xff, 0xff, 1026 }, /* 0001 1010 01 */
  146. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1010 10 */
  147. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1010 11 */
  148. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1011 00 */
  149. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1011 01 */
  150. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1011 10 */
  151. { illegal  , 0         ,        5, 0xff, 0xff, 1026 }, /* 0001 1011 11 */
  152. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1100 00 */
  153. { illegal  , 0         ,        6, 0xff, 0xff, 1026 }, /* 0001 1100 01 */
  154. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1100 10 */
  155. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1100 11 */
  156. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1101 00 */
  157. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1101 01 */
  158. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1101 10 */
  159. { illegal  , 0         ,        6, 0xff, 0xff, 1026 }, /* 0001 1101 11 */
  160. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1110 00 */
  161. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 0001 1110 01 */
  162. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1110 10 */
  163. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1110 11 */
  164. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1111 00 */
  165. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1111 01 */
  166. { move     , "MOVE.B"  , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0001 1111 10 */
  167. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 0001 1111 11 */
  168. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0000 00 */
  169. { op_l     , "MOVEA.L" ,        8, 0xff, 0x1f, 1026 }, /* 0010 0000 01 */
  170. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0000 10 */
  171. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0000 11 */
  172. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0001 00 */
  173. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0001 01 */
  174. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0001 10 */
  175. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0001 11 */
  176. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0010 00 */
  177. { op_l     , "MOVEA.L" ,        9, 0xff, 0x1f, 1026 }, /* 0010 0010 01 */
  178. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0010 10 */
  179. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0010 11 */
  180. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0011 00 */
  181. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0011 01 */
  182. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0011 10 */
  183. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0011 11 */
  184. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0100 00 */
  185. { op_l     , "MOVEA.L" ,       10, 0xff, 0x1f, 1026 }, /* 0010 0100 01 */
  186. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0100 10 */
  187. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0100 11 */
  188. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0101 00 */
  189. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0101 01 */
  190. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0101 10 */
  191. { illegal  , 0         ,        2, 0xff, 0xff, 1026 }, /* 0010 0101 11 */
  192. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0110 00 */
  193. { op_l     , "MOVEA.L" ,       11, 0xff, 0x1f, 1026 }, /* 0010 0110 01 */
  194. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0110 10 */
  195. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0110 11 */
  196. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0111 00 */
  197. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0111 01 */
  198. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 0111 10 */
  199. { illegal  , 0         ,        3, 0xff, 0xff, 1026 }, /* 0010 0111 11 */
  200. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1000 00 */
  201. { op_l     , "MOVEA.L" ,       12, 0xff, 0x1f, 1026 }, /* 0010 1000 01 */
  202. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1000 10 */
  203. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1000 11 */
  204. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1001 00 */
  205. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1001 01 */
  206. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1001 10 */
  207. { illegal  , 0         ,        4, 0xff, 0xff, 1026 }, /* 0010 1001 11 */
  208. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1010 00 */
  209. { op_l     , "MOVEA.L" ,       13, 0xff, 0x1f, 1026 }, /* 0010 1010 01 */
  210. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1010 10 */
  211. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1010 11 */
  212. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1011 00 */
  213. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1011 01 */
  214. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1011 10 */
  215. { illegal  , 0         ,        5, 0xff, 0xff, 1026 }, /* 0010 1011 11 */
  216. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1100 00 */
  217. { op_l     , "MOVEA.L" ,       14, 0xff, 0x1f, 1026 }, /* 0010 1100 01 */
  218. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1100 10 */
  219. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1100 11 */
  220. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1101 00 */
  221. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1101 01 */
  222. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1101 10 */
  223. { illegal  , 0         ,        6, 0xff, 0xff, 1026 }, /* 0010 1101 11 */
  224. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1110 00 */
  225. { op_l     , "MOVEA.L" ,       15, 0xff, 0x1f, 1026 }, /* 0010 1110 01 */
  226. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1110 10 */
  227. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1110 11 */
  228. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1111 00 */
  229. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1111 01 */
  230. { move     , "MOVE.L"  , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0010 1111 10 */
  231. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 0010 1111 11 */
  232. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0000 00 */
  233. { op_w     , "MOVEA.W" ,        8, 0xff, 0x1f, 1026 }, /* 0011 0000 01 */
  234. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0000 10 */
  235. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0000 11 */
  236. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0001 00 */
  237. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0001 01 */
  238. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0001 10 */
  239. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0001 11 */
  240. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0010 00 */
  241. { op_w     , "MOVEA.W" ,        9, 0xff, 0x1f, 1026 }, /* 0011 0010 01 */
  242. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0010 10 */
  243. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0010 11 */
  244. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0011 00 */
  245. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0011 01 */
  246. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0011 10 */
  247. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0011 11 */
  248. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0100 00 */
  249. { op_w     , "MOVEA.W" ,       10, 0xff, 0x1f, 1026 }, /* 0011 0100 01 */
  250. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0100 10 */
  251. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0100 11 */
  252. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0101 00 */
  253. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0101 01 */
  254. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0101 10 */
  255. { illegal  , 0         ,        2, 0xff, 0xff, 1026 }, /* 0011 0101 11 */
  256. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0110 00 */
  257. { op_w     , "MOVEA.W" ,       11, 0xff, 0x1f, 1026 }, /* 0011 0110 01 */
  258. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0110 10 */
  259. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0110 11 */
  260. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0111 00 */
  261. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0111 01 */
  262. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 0111 10 */
  263. { illegal  , 0         ,        3, 0xff, 0xff, 1026 }, /* 0011 0111 11 */
  264. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1000 00 */
  265. { op_w     , "MOVEA.W" ,       12, 0xff, 0x1f, 1026 }, /* 0011 1000 01 */
  266. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1000 10 */
  267. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1000 11 */
  268. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1001 00 */
  269. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1001 01 */
  270. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1001 10 */
  271. { illegal  , 0         ,        4, 0xff, 0xff, 1026 }, /* 0011 1001 11 */
  272. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1010 00 */
  273. { op_w     , "MOVEA.W" ,       13, 0xff, 0x1f, 1026 }, /* 0011 1010 01 */
  274. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1010 10 */
  275. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1010 11 */
  276. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1011 00 */
  277. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1011 01 */
  278. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1011 10 */
  279. { illegal  , 0         ,        5, 0xff, 0xff, 1026 }, /* 0011 1011 11 */
  280. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1100 00 */
  281. { op_w     , "MOVEA.W" ,       14, 0xff, 0x1f, 1026 }, /* 0011 1100 01 */
  282. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1100 10 */
  283. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1100 11 */
  284. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1101 00 */
  285. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1101 01 */
  286. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1101 10 */
  287. { illegal  , 0         ,        6, 0xff, 0xff, 1026 }, /* 0011 1101 11 */
  288. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1110 00 */
  289. { op_w     , "MOVEA.W" ,       15, 0xff, 0x1f, 1026 }, /* 0011 1110 01 */
  290. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1110 10 */
  291. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1110 11 */
  292. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1111 00 */
  293. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1111 01 */
  294. { move     , "MOVE.W"  , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0011 1111 10 */
  295. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 0011 1111 11 */
  296. { single_op, "NEGX.B"  , ACC_BYTE, 0xfd, 0x03, 1026 }, /* 0100 0000 00 */
  297. { single_op, "NEGX.W"  , ACC_WORD, 0xfd, 0x03, 1026 }, /* 0100 0000 01 */
  298. { single_op, "NEGX.L"  , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0100 0000 10 */
  299. { movesrccr, "MOVE.W"  ,  FROM_SR, 0xfd, 0x03, 1026 }, /* 0100 0000 11 */
  300. { op_l     , "CHK.L"   ,        0, 0xfd, 0x1f, 1026 }, /* 0100 0001 00 */
  301. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 0001 01 */
  302. { op_w     , "CHK.W"   ,        0, 0xfd, 0x1f, 1026 }, /* 0100 0001 10 */
  303. { op_l     , "LEA"     ,        8, 0xe4, 0x0f, 1026 }, /* 0100 0001 11 */
  304. { single_op, "CLR.B"   , ACC_BYTE, 0xfd, 0x03, 1026 }, /* 0100 0010 00 */
  305. { single_op, "CLR.W"   , ACC_WORD, 0xfd, 0x03, 1026 }, /* 0100 0010 01 */
  306. { single_op, "CLR.L"   , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0100 0010 10 */
  307. { movesrccr, "MOVE.W"  , FROM_CCR, 0xfd, 0x03, 1026 }, /* 0100 0010 11 */
  308. { op_l     , "CHK.L"   ,        1, 0xfd, 0x1f, 1026 }, /* 0100 0011 00 */
  309. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 0011 01 */
  310. { op_w     , "CHK.W"   ,        1, 0xfd, 0x1f, 1026 }, /* 0100 0011 10 */
  311. { op_l     , "LEA"     ,        9, 0xe4, 0x0f, 1026 }, /* 0100 0011 11 */
  312. { single_op, "NEG.B"   , ACC_BYTE, 0xfd, 0x03, 1026 }, /* 0100 0100 00 */
  313. { single_op, "NEG.W"   , ACC_WORD, 0xfd, 0x03, 1026 }, /* 0100 0100 01 */
  314. { single_op, "NEG.L"   , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0100 0100 10 */
  315. { movesrccr, "MOVE.W"  ,   TO_CCR, 0xfd, 0x1f, 1026 }, /* 0100 0100 11 */
  316. { op_l     , "CHK.L"   ,        2, 0xfd, 0x1f, 1026 }, /* 0100 0101 00 */
  317. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 0101 01 */
  318. { op_w     , "CHK.W"   ,        2, 0xfd, 0x1f, 1026 }, /* 0100 0101 10 */
  319. { op_l     , "LEA"     ,       10, 0xe4, 0x0f, 1026 }, /* 0100 0101 11 */
  320. { single_op, "NOT.B"   , ACC_BYTE, 0xfd, 0x03, 1026 }, /* 0100 0110 00 */
  321. { single_op, "NOT.W"   , ACC_WORD, 0xfd, 0x03, 1026 }, /* 0100 0110 01 */
  322. { single_op, "NOT.L"   , ACC_LONG, 0xfd, 0x03, 1026 }, /* 0100 0110 10 */
  323. { movesrccr, "MOVE.W"  ,    TO_SR, 0xfd, 0x1f, 1026 }, /* 0100 0110 11 */
  324. { op_l     , "CHK.L"   ,        3, 0xfd, 0x1f, 1026 }, /* 0100 0111 00 */
  325. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 0111 01 */
  326. { op_w     , "CHK.W"   ,        3, 0xfd, 0x1f, 1026 }, /* 0100 0111 10 */
  327. { op_l     , "LEA"     ,       11, 0xe4, 0x0f, 1026 }, /* 0100 0111 11 */
  328. { single_op, "NBCD.B"  , ACC_BYTE, 0xfd, 0x03, 1055 }, /* 0100 1000 00 */
  329. { single_op, "PEA"     , ACC_LONG, 0xe4, 0x0f, 1029 }, /* 0100 1000 01 */
  330. { movem    , "MOVEM.W" ,      MEM, 0xf4, 0x03, 1030 }, /* 0100 1000 10 */
  331. { movem    , "MOVEM.L" ,      MEM, 0xf4, 0x03, 1050 }, /* 0100 1000 11 */
  332. { op_l     , "CHK.L"   ,        4, 0xfd, 0x1f, 1026 }, /* 0100 1001 00 */
  333. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 1001 01 */
  334. { op_w     , "CHK.W"   ,        4, 0xfd, 0x1f, 1026 }, /* 0100 1001 10 */
  335. { op_l     , "LEA"     ,       12, 0xe4, 0x0f, 1051 }, /* 0100 1001 11 */
  336. { single_op, "TST.B"   , ACC_BYTE, 0xff, 0x1f, 1026 }, /* 0100 1010 00 */
  337. { single_op, "TST.W"   , ACC_WORD, 0xff, 0x1f, 1026 }, /* 0100 1010 01 */
  338. { single_op, "TST.L"   , ACC_LONG, 0xff, 0x1f, 1026 }, /* 0100 1010 10 */
  339. { single_op, "TAS"     , ACC_BYTE, 0xfd, 0x03, 1025 }, /* 0100 1010 11 */
  340. { op_l     , "CHK.L"   ,        5, 0xfd, 0x1f, 1026 }, /* 0100 1011 00 */
  341. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 1011 01 */
  342. { op_w     , "CHK.W"   ,        5, 0xfd, 0x1f, 1026 }, /* 0100 1011 10 */
  343. { op_l     , "LEA"     ,       13, 0xe4, 0x0f, 1026 }, /* 0100 1011 11 */
  344. { muldivl  , "MUL "    ,        0, 0xfd, 0x1f, 1026 }, /* 0100 1100 00 */
  345. { muldivl  , "DIV "    ,        0, 0xfd, 0x1f, 1026 }, /* 0100 1100 01 */
  346. { movem    , "MOVEM.W" ,      REG, 0xec, 0x0f, 1026 }, /* 0100 1100 10 */
  347. { movem    , "MOVEM.L" ,      REG, 0xec, 0x0f, 1026 }, /* 0100 1100 11 */
  348. { op_l     , "CHK.L"   ,        6, 0xfd, 0x1f, 1026 }, /* 0100 1101 00 */
  349. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 1101 01 */
  350. { op_w     , "CHK.W"   ,        6, 0xfd, 0x1f, 1026 }, /* 0100 1101 10 */
  351. { op_l     , "LEA"     ,       14, 0xe4, 0x0f, 1026 }, /* 0100 1101 11 */
  352. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 1110 00 */
  353. { special  , 0         ,        0, 0xff, 0x0c, 1026 }, /* 0100 1110 01 */ 
  354. { single_op, "JSR",      ACC_CODE, 0xe4, 0x0f, 1026 }, /* 0100 1110 10 */
  355. { end_single_op, "JMP" , ACC_CODE, 0xe4, 0x0f, 1026 }, /* 0100 1110 11 */
  356. { op_l     , "CHK.L"   ,        7, 0xfd, 0x1f, 1026 }, /* 0100 1111 00 */
  357. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0100 1111 01 */
  358. { op_w     , "CHK.W"   ,        7, 0xfd, 0x1f, 1026 }, /* 0100 1111 10 */
  359. { op_l     , "LEA"     ,       15, 0xe4, 0x0f, 1026 }, /* 0100 1111 11 */
  360. { quick    , "ADDQ.B"  ,        8, 0xff, 0x03, 1026 }, /* 0101 0000 00 */
  361. { quick    , "ADDQ.W"  ,        8, 0xff, 0x03, 1026 }, /* 0101 0000 01 */
  362. { quick    , "ADDQ.L"  ,        8, 0xff, 0x03, 1026 }, /* 0101 0000 10 */
  363. { dbranch  , "DBT"     ,        0, 0x02, 0xff, 1046 }, /* 0101 0000 11 */
  364. { quick    , "SUBQ.B"  ,        8, 0xff, 0x03, 1026 }, /* 0101 0001 00 */
  365. { quick    , "SUBQ.W"  ,        8, 0xff, 0x03, 1026 }, /* 0101 0001 01 */
  366. { quick    , "SUBQ.L"  ,        8, 0xff, 0x03, 1026 }, /* 0101 0001 10 */
  367. { dbranch  , "DBRA"    ,        0, 0x02, 0xff, 1046 }, /* 0101 0001 11 */
  368. { quick    , "ADDQ.B"  ,        1, 0xff, 0x03, 1026 }, /* 0101 0010 00 */
  369. { quick    , "ADDQ.W"  ,        1, 0xff, 0x03, 1026 }, /* 0101 0010 01 */
  370. { quick    , "ADDQ.L"  ,        1, 0xff, 0x03, 1026 }, /* 0101 0010 10 */
  371. { dbranch  , "DBHI"    ,        1, 0x02, 0xff, 1046 }, /* 0101 0010 11 */
  372. { quick    , "SUBQ.B"  ,        1, 0xff, 0x03, 1026 }, /* 0101 0011 00 */
  373. { quick    , "SUBQ.W"  ,        1, 0xff, 0x03, 1026 }, /* 0101 0011 01 */
  374. { quick    , "SUBQ.L"  ,        1, 0xff, 0x03, 1026 }, /* 0101 0011 10 */
  375. { dbranch  , "DBLS"    ,        1, 0x02, 0xff, 1046 }, /* 0101 0011 11 */
  376. { quick    , "ADDQ.B"  ,        2, 0xff, 0x03, 1026 }, /* 0101 0100 00 */
  377. { quick    , "ADDQ.W"  ,        2, 0xff, 0x03, 1026 }, /* 0101 0100 01 */
  378. { quick    , "ADDQ.L"  ,        2, 0xff, 0x03, 1026 }, /* 0101 0100 10 */
  379. { dbranch  , "DBCC"    ,        2, 0x02, 0xff, 1046 }, /* 0101 0100 11 */
  380. { quick    , "SUBQ.B"  ,        2, 0xff, 0x03, 1026 }, /* 0101 0101 00 */
  381. { quick    , "SUBQ.W"  ,        2, 0xff, 0x03, 1026 }, /* 0101 0101 01 */
  382. { quick    , "SUBQ.L"  ,        2, 0xff, 0x03, 1026 }, /* 0101 0101 10 */
  383. { dbranch  , "DBCS"    ,        2, 0x02, 0xff, 1046 }, /* 0101 0101 11 */
  384. { quick    , "ADDQ.B"  ,        3, 0xff, 0x03, 1026 }, /* 0101 0110 00 */
  385. { quick    , "ADDQ.W"  ,        3, 0xff, 0x03, 1026 }, /* 0101 0110 01 */
  386. { quick    , "ADDQ.L"  ,        3, 0xff, 0x03, 1026 }, /* 0101 0110 10 */
  387. { dbranch  , "DBNE"    ,        3, 0x02, 0xff, 1046 }, /* 0101 0110 11 */
  388. { quick    , "SUBQ.B"  ,        3, 0xff, 0x03, 1026 }, /* 0101 0111 00 */
  389. { quick    , "SUBQ.W"  ,        3, 0xff, 0x03, 1026 }, /* 0101 0111 01 */
  390. { quick    , "SUBQ.L"  ,        3, 0xff, 0x03, 1026 }, /* 0101 0111 10 */
  391. { dbranch  , "DBEQ"    ,        3, 0x02, 0xff, 1046 }, /* 0101 0111 11 */
  392. { quick    , "ADDQ.B"  ,        4, 0xff, 0x03, 1026 }, /* 0101 1000 00 */
  393. { quick    , "ADDQ.W"  ,        4, 0xff, 0x03, 1026 }, /* 0101 1000 01 */
  394. { quick    , "ADDQ.L"  ,        4, 0xff, 0x03, 1026 }, /* 0101 1000 10 */
  395. { dbranch  , "DBVC"    ,        4, 0x02, 0xff, 1046 }, /* 0101 1000 11 */
  396. { quick    , "SUBQ.B"  ,        4, 0xff, 0x03, 1026 }, /* 0101 1001 00 */
  397. { quick    , "SUBQ.W"  ,        4, 0xff, 0x03, 1026 }, /* 0101 1001 01 */
  398. { quick    , "SUBQ.L"  ,        4, 0xff, 0x03, 1026 }, /* 0101 1001 10 */
  399. { dbranch  , "DBVS"    ,        4, 0x02, 0xff, 1046 }, /* 0101 1001 11 */
  400. { quick    , "ADDQ.B"  ,        5, 0xff, 0x03, 1026 }, /* 0101 1010 00 */
  401. { quick    , "ADDQ.W"  ,        5, 0xff, 0x03, 1026 }, /* 0101 1010 01 */
  402. { quick    , "ADDQ.L"  ,        5, 0xff, 0x03, 1026 }, /* 0101 1010 10 */
  403. { dbranch  , "DBPL"    ,        5, 0x02, 0xff, 1046 }, /* 0101 1010 11 */
  404. { quick    , "SUBQ.B"  ,        5, 0xff, 0x03, 1026 }, /* 0101 1011 00 */
  405. { quick    , "SUBQ.W"  ,        5, 0xff, 0x03, 1026 }, /* 0101 1011 01 */
  406. { quick    , "SUBQ.L"  ,        5, 0xff, 0x03, 1026 }, /* 0101 1011 10 */
  407. { dbranch  , "DBMI"    ,        5, 0x02, 0xff, 1046 }, /* 0101 1011 11 */
  408. { quick    , "ADDQ.B"  ,        6, 0xff, 0x03, 1026 }, /* 0101 1100 00 */
  409. { quick    , "ADDQ.W"  ,        6, 0xff, 0x03, 1026 }, /* 0101 1100 01 */
  410. { quick    , "ADDQ.L"  ,        6, 0xff, 0x03, 1026 }, /* 0101 1100 10 */
  411. { dbranch  , "DBGE"    ,        6, 0x02, 0xff, 1046 }, /* 0101 1100 11 */
  412. { quick    , "SUBQ.B"  ,        6, 0xff, 0x03, 1026 }, /* 0101 1101 00 */
  413. { quick    , "SUBQ.W"  ,        6, 0xff, 0x03, 1026 }, /* 0101 1101 01 */
  414. { quick    , "SUBQ.L"  ,        6, 0xff, 0x03, 1026 }, /* 0101 1101 10 */
  415. { dbranch  , "DBLE"    ,        6, 0x02, 0xff, 1046 }, /* 0101 1101 11 */
  416. { quick    , "ADDQ.B"  ,        7, 0xff, 0x03, 1026 }, /* 0101 1110 00 */
  417. { quick    , "ADDQ.W"  ,        7, 0xff, 0x03, 1026 }, /* 0101 1110 01 */
  418. { quick    , "ADDQ.L"  ,        7, 0xff, 0x03, 1026 }, /* 0101 1110 10 */
  419. { dbranch  , "DBGT"    ,        7, 0x02, 0xff, 1046 }, /* 0101 1110 11 */
  420. { quick    , "SUBQ.B"  ,        7, 0xff, 0x03, 1026 }, /* 0101 1111 00 */
  421. { quick    , "SUBQ.W"  ,        7, 0xff, 0x03, 1026 }, /* 0101 1111 01 */
  422. { quick    , "SUBQ.L"  ,        7, 0xff, 0x03, 1026 }, /* 0101 1111 10 */
  423. { dbranch  , "DBLE"    ,        7, 0x02, 0xff, 1046 }, /* 0101 1111 11 */
  424. { branch   , "BRA"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0000 00 */
  425. { branch   , "BRA"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0000 01 */
  426. { branch   , "BRA"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0000 10 */
  427. { branch   , "BRA"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0000 11 */
  428. { branch   , "BSR"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0001 00 */
  429. { branch   , "BSR"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0001 01 */
  430. { branch   , "BSR"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0001 10 */
  431. { branch   , "BSR"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0001 11 */
  432. { branch   , "BHI"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0010 00 */
  433. { branch   , "BHI"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0010 01 */
  434. { branch   , "BHI"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0010 10 */
  435. { branch   , "BHI"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0010 11 */
  436. { branch   , "BLS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0011 00 */
  437. { branch   , "BLS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0011 01 */
  438. { branch   , "BLS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0011 10 */
  439. { branch   , "BLS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0011 11 */
  440. { branch   , "BCC"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0100 00 */
  441. { branch   , "BCC"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0100 01 */
  442. { branch   , "BCC"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0100 10 */
  443. { branch   , "BCC"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0100 11 */
  444. { branch   , "BCS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0101 00 */
  445. { branch   , "BCS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0101 01 */
  446. { branch   , "BCS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0101 10 */
  447. { branch   , "BCS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0101 11 */
  448. { branch   , "BNE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0110 00 */
  449. { branch   , "BNE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0110 01 */
  450. { branch   , "BNE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0110 10 */
  451. { branch   , "BNE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0110 11 */
  452. { branch   , "BEQ"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0111 00 */
  453. { branch   , "BEQ"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0111 01 */
  454. { branch   , "BEQ"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0111 10 */
  455. { branch   , "BEQ"     ,        0, 0xff, 0xff, 1026 }, /* 0110 0111 11 */
  456. { branch   , "BVC"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1000 00 */
  457. { branch   , "BVC"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1000 01 */
  458. { branch   , "BVC"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1000 10 */
  459. { branch   , "BVC"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1000 11 */
  460. { branch   , "BVS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1001 00 */
  461. { branch   , "BVS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1001 01 */
  462. { branch   , "BVS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1001 10 */
  463. { branch   , "BVS"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1001 11 */
  464. { branch   , "BPL"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1010 00 */
  465. { branch   , "BPL"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1010 01 */
  466. { branch   , "BPL"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1010 10 */
  467. { branch   , "BPL"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1010 11 */
  468. { branch   , "BMI"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1011 00 */
  469. { branch   , "BMI"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1011 01 */
  470. { branch   , "BMI"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1011 10 */
  471. { branch   , "BMI"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1011 11 */
  472. { branch   , "BGE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1100 00 */
  473. { branch   , "BGE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1100 01 */
  474. { branch   , "BGE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1100 10 */
  475. { branch   , "BGE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1100 11 */
  476. { branch   , "BLT"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1101 00 */
  477. { branch   , "BLT"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1101 01 */
  478. { branch   , "BLT"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1101 10 */
  479. { branch   , "BLT"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1101 11 */
  480. { branch   , "BGT"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1110 00 */
  481. { branch   , "BGT"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1110 01 */
  482. { branch   , "BGT"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1110 10 */
  483. { branch   , "BGT"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1110 11 */
  484. { branch   , "BLE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1111 00 */
  485. { branch   , "BLE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1111 01 */
  486. { branch   , "BLE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1111 10 */
  487. { branch   , "BLE"     ,        0, 0xff, 0xff, 1026 }, /* 0110 1111 11 */
  488. { moveq    , "MOVEQ"   ,        0, 0xff, 0xff, 1026 }, /* 0111 0000 00 */
  489. { moveq    , "MOVEQ"   ,        0, 0xff, 0xff, 1026 }, /* 0111 0000 01 */
  490. { moveq    , "MOVEQ"   ,        0, 0xff, 0xff, 1026 }, /* 0111 0000 10 */
  491. { moveq    , "MOVEQ"   ,        0, 0xff, 0xff, 1026 }, /* 0111 0000 11 */
  492. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0001 00 */
  493. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0001 01 */
  494. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0001 10 */
  495. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0001 11 */
  496. { moveq    , "MOVEQ"   ,        1, 0xff, 0xff, 1026 }, /* 0111 0010 00 */
  497. { moveq    , "MOVEQ"   ,        1, 0xff, 0xff, 1026 }, /* 0111 0010 01 */
  498. { moveq    , "MOVEQ"   ,        1, 0xff, 0xff, 1026 }, /* 0111 0010 10 */
  499. { moveq    , "MOVEQ"   ,        1, 0xff, 0xff, 1026 }, /* 0111 0010 11 */
  500. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0011 00 */
  501. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0011 01 */
  502. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0011 10 */
  503. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0011 11 */
  504. { moveq    , "MOVEQ"   ,        2, 0xff, 0xff, 1026 }, /* 0111 0100 00 */
  505. { moveq    , "MOVEQ"   ,        2, 0xff, 0xff, 1026 }, /* 0111 0100 01 */
  506. { moveq    , "MOVEQ"   ,        2, 0xff, 0xff, 1026 }, /* 0111 0100 10 */
  507. { moveq    , "MOVEQ"   ,        2, 0xff, 0xff, 1026 }, /* 0111 0100 11 */
  508. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0101 00 */
  509. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0101 01 */
  510. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0101 10 */
  511. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0101 11 */
  512. { moveq    , "MOVEQ"   ,        3, 0xff, 0xff, 1026 }, /* 0111 0110 00 */
  513. { moveq    , "MOVEQ"   ,        3, 0xff, 0xff, 1026 }, /* 0111 0110 01 */
  514. { moveq    , "MOVEQ"   ,        3, 0xff, 0xff, 1026 }, /* 0111 0110 10 */
  515. { moveq    , "MOVEQ"   ,        3, 0xff, 0xff, 1026 }, /* 0111 0110 11 */
  516. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0111 00 */
  517. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0111 01 */
  518. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0111 10 */
  519. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 0111 11 */
  520. { moveq    , "MOVEQ"   ,        4, 0xff, 0xff, 1026 }, /* 0111 1000 00 */
  521. { moveq    , "MOVEQ"   ,        4, 0xff, 0xff, 1026 }, /* 0111 1000 01 */
  522. { moveq    , "MOVEQ"   ,        4, 0xff, 0xff, 1026 }, /* 0111 1000 10 */
  523. { moveq    , "MOVEQ"   ,        4, 0xff, 0xff, 1026 }, /* 0111 1000 11 */
  524. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1001 00 */
  525. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1001 01 */
  526. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1001 10 */
  527. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1001 11 */
  528. { moveq    , "MOVEQ"   ,        5, 0xff, 0xff, 1026 }, /* 0111 1010 00 */
  529. { moveq    , "MOVEQ"   ,        5, 0xff, 0xff, 1026 }, /* 0111 1010 01 */
  530. { moveq    , "MOVEQ"   ,        5, 0xff, 0xff, 1026 }, /* 0111 1010 10 */
  531. { moveq    , "MOVEQ"   ,        5, 0xff, 0xff, 1026 }, /* 0111 1010 11 */
  532. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1011 00 */
  533. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1011 01 */
  534. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1011 10 */
  535. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1011 11 */
  536. { moveq    , "MOVEQ"   ,        6, 0xff, 0xff, 1026 }, /* 0111 1100 00 */
  537. { moveq    , "MOVEQ"   ,        6, 0xff, 0xff, 1026 }, /* 0111 1100 01 */
  538. { moveq    , "MOVEQ"   ,        6, 0xff, 0xff, 1026 }, /* 0111 1100 10 */
  539. { moveq    , "MOVEQ"   ,        6, 0xff, 0xff, 1026 }, /* 0111 1100 11 */
  540. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1101 00 */
  541. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1101 01 */
  542. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1101 10 */
  543. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1101 11 */
  544. { moveq    , "MOVEQ"   ,        7, 0xff, 0xff, 1026 }, /* 0111 1110 00 */
  545. { moveq    , "MOVEQ"   ,        7, 0xff, 0xff, 1026 }, /* 0111 1110 01 */
  546. { moveq    , "MOVEQ"   ,        7, 0xff, 0xff, 1026 }, /* 0111 1110 10 */
  547. { moveq    , "MOVEQ"   ,        7, 0xff, 0xff, 1026 }, /* 0111 1110 11 */
  548. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1111 00 */
  549. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1111 01 */
  550. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1111 10 */
  551. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 0111 1111 11 */
  552. { dual_op  , "OR.B"    ,        0, 0xfd, 0x1f, 1026 }, /* 1000 0000 00 */
  553. { dual_op  , "OR.W"    ,        0, 0xfd, 0x1f, 1026 }, /* 1000 0000 01 */
  554. { dual_op  , "OR.L"    ,        0, 0xfd, 0x1f, 1026 }, /* 1000 0000 10 */
  555. { op_w     , "DIVU.W"  ,        0, 0xfd, 0x1f, 1026 }, /* 1000 0000 11 */
  556. { dual_op  , "OR.B"    ,        0, 0xfc, 0x03, 1031 }, /* 1000 0001 00 */
  557. { dual_op  , "OR.W"    ,        0, 0xfc, 0x03, 1032 }, /* 1000 0001 01 */
  558. { dual_op  , "OR.L"    ,        0, 0xfc, 0x03, 1028 }, /* 1000 0001 10 */
  559. { op_w     , "DIVS.W"  ,        0, 0xfd, 0x1f, 1026 }, /* 1000 0001 11 */
  560. { dual_op  , "OR.B"    ,        1, 0xfd, 0x1f, 1026 }, /* 1000 0010 00 */
  561. { dual_op  , "OR.W"    ,        1, 0xfd, 0x1f, 1026 }, /* 1000 0010 01 */
  562. { dual_op  , "OR.L"    ,        1, 0xfd, 0x1f, 1026 }, /* 1000 0010 10 */
  563. { op_w     , "DIVU.W"  ,        1, 0xfd, 0x1f, 1026 }, /* 1000 0010 11 */
  564. { dual_op  , "OR.B"    ,        1, 0xfc, 0x03, 1031 }, /* 1000 0011 00 */
  565. { dual_op  , "OR.W"    ,        1, 0xfc, 0x03, 1032 }, /* 1000 0011 01 */
  566. { dual_op  , "OR.L"    ,        1, 0xfc, 0x03, 1028 }, /* 1000 0011 10 */
  567. { op_w     , "DIVS.W"  ,        1, 0xfd, 0x1f, 1026 }, /* 1000 0011 11 */
  568. { dual_op  , "OR.B"    ,        2, 0xfd, 0x1f, 1026 }, /* 1000 0100 00 */
  569. { dual_op  , "OR.W"    ,        2, 0xfd, 0x1f, 1026 }, /* 1000 0100 01 */
  570. { dual_op  , "OR.L"    ,        2, 0xfd, 0x1f, 1026 }, /* 1000 0100 10 */
  571. { op_w     , "DIVU.W"  ,        2, 0xfd, 0x1f, 1026 }, /* 1000 0100 11 */
  572. { dual_op  , "OR.B"    ,        2, 0xfc, 0x03, 1031 }, /* 1000 0101 00 */
  573. { dual_op  , "OR.W"    ,        2, 0xfc, 0x03, 1032 }, /* 1000 0101 01 */
  574. { dual_op  , "OR.L"    ,        2, 0xfc, 0x03, 1028 }, /* 1000 0101 10 */
  575. { op_w     , "DIVS.W"  ,        2, 0xfd, 0x1f, 1026 }, /* 1000 0101 11 */
  576. { dual_op  , "OR.B"    ,        3, 0xfd, 0x1f, 1026 }, /* 1000 0110 00 */
  577. { dual_op  , "OR.W"    ,        3, 0xfd, 0x1f, 1026 }, /* 1000 0110 01 */
  578. { dual_op  , "OR.L"    ,        3, 0xfd, 0x1f, 1026 }, /* 1000 0110 10 */
  579. { op_w     , "DIVU.W"  ,        3, 0xfd, 0x1f, 1026 }, /* 1000 0110 11 */
  580. { dual_op  , "OR.B"    ,        3, 0xfc, 0x03, 1031 }, /* 1000 0111 00 */
  581. { dual_op  , "OR.W"    ,        3, 0xfc, 0x03, 1032 }, /* 1000 0111 01 */
  582. { dual_op  , "OR.L"    ,        3, 0xfc, 0x03, 1028 }, /* 1000 0111 10 */
  583. { op_w     , "DIVS.W"  ,        3, 0xfd, 0x1f, 1026 }, /* 1000 0111 11 */
  584. { dual_op  , "OR.B"    ,        4, 0xfd, 0x1f, 1026 }, /* 1000 1000 00 */
  585. { dual_op  , "OR.W"    ,        4, 0xfd, 0x1f, 1026 }, /* 1000 1000 01 */
  586. { dual_op  , "OR.L"    ,        4, 0xfd, 0x1f, 1026 }, /* 1000 1000 10 */
  587. { op_w     , "DIVU.W"  ,        4, 0xfd, 0x1f, 1026 }, /* 1000 1000 11 */
  588. { dual_op  , "OR.B"    ,        4, 0xfc, 0x03, 1031 }, /* 1000 1001 00 */
  589. { dual_op  , "OR.W"    ,        4, 0xfc, 0x03, 1032 }, /* 1000 1001 01 */
  590. { dual_op  , "OR.L"    ,        4, 0xfc, 0x03, 1028 }, /* 1000 1001 10 */
  591. { op_w     , "DIVS.W"  ,        4, 0xfd, 0x1f, 1026 }, /* 1000 1001 11 */
  592. { dual_op  , "OR.B"    ,        5, 0xfd, 0x1f, 1026 }, /* 1000 1010 00 */
  593. { dual_op  , "OR.W"    ,        5, 0xfd, 0x1f, 1026 }, /* 1000 1010 01 */
  594. { dual_op  , "OR.L"    ,        5, 0xfd, 0x1f, 1026 }, /* 1000 1010 10 */
  595. { op_w     , "DIVU.W"  ,        5, 0xfd, 0x1f, 1026 }, /* 1000 1010 11 */
  596. { dual_op  , "OR.B"    ,        5, 0xfc, 0x03, 1031 }, /* 1000 1011 00 */
  597. { dual_op  , "OR.W"    ,        5, 0xfc, 0x03, 1032 }, /* 1000 1011 01 */
  598. { dual_op  , "OR.L"    ,        5, 0xfc, 0x03, 1028 }, /* 1000 1011 10 */
  599. { op_w     , "DIVS.W"  ,        5, 0xfd, 0x1f, 1026 }, /* 1000 1011 11 */
  600. { dual_op  , "OR.B"    ,        6, 0xfd, 0x1f, 1026 }, /* 1000 1100 00 */
  601. { dual_op  , "OR.W"    ,        6, 0xfd, 0x1f, 1026 }, /* 1000 1100 01 */
  602. { dual_op  , "OR.L"    ,        6, 0xfd, 0x1f, 1026 }, /* 1000 1100 10 */
  603. { op_w     , "DIVU.W"  ,        6, 0xfd, 0x1f, 1026 }, /* 1000 1100 11 */
  604. { dual_op  , "OR.B"    ,        6, 0xfc, 0x03, 1031 }, /* 1000 1101 00 */
  605. { dual_op  , "OR.W"    ,        6, 0xfc, 0x03, 1032 }, /* 1000 1101 01 */
  606. { dual_op  , "OR.L"    ,        6, 0xfc, 0x03, 1028 }, /* 1000 1101 10 */
  607. { op_w     , "DIVS.W"  ,        6, 0xfd, 0x1f, 1026 }, /* 1000 1101 11 */
  608. { dual_op  , "OR.B"    ,        7, 0xfd, 0x1f, 1026 }, /* 1000 1110 00 */
  609. { dual_op  , "OR.W"    ,        7, 0xfd, 0x1f, 1026 }, /* 1000 1110 01 */
  610. { dual_op  , "OR.L"    ,        7, 0xfd, 0x1f, 1026 }, /* 1000 1110 10 */
  611. { op_w     , "DIVU.W"  ,        7, 0xfd, 0x1f, 1026 }, /* 1000 1110 11 */
  612. { dual_op  , "OR.B"    ,        7, 0xfc, 0x03, 1031 }, /* 1000 1111 00 */
  613. { dual_op  , "OR.W"    ,        7, 0xfc, 0x03, 1032 }, /* 1000 1111 01 */
  614. { dual_op  , "OR.L"    ,        7, 0xfc, 0x03, 1028 }, /* 1000 1111 10 */
  615. { op_w     , "DIVS.W"  ,        7, 0xfd, 0x1f, 1026 }, /* 1000 1111 11 */
  616. { dual_op  , "SUB.B"   ,        0, 0xff, 0x1f, 1026 }, /* 1001 0000 00 */
  617. { dual_op  , "SUB.W"   ,        0, 0xff, 0x1f, 1026 }, /* 1001 0000 01 */
  618. { dual_op  , "SUB.L"   ,        0, 0xff, 0x1f, 1026 }, /* 1001 0000 10 */
  619. { op_w     , "SUBA.W"  ,        8, 0xff, 0x1f, 1026 }, /* 1001 0000 11 */
  620. { dual_op  , "SUB.B"   ,        0, 0xfc, 0x03, 1052 }, /* 1001 0001 00 */
  621. { dual_op  , "SUB.W"   ,        0, 0xfc, 0x03, 1053 }, /* 1001 0001 01 */
  622. { dual_op  , "SUB.L"   ,        0, 0xfc, 0x03, 1054 }, /* 1001 0001 10 */
  623. { op_l     , "SUBA.L"  ,        8, 0xff, 0x1f, 1026 }, /* 1001 0001 11 */
  624. { dual_op  , "SUB.B"   ,        1, 0xff, 0x1f, 1026 }, /* 1001 0010 00 */
  625. { dual_op  , "SUB.W"   ,        1, 0xff, 0x1f, 1026 }, /* 1001 0010 01 */
  626. { dual_op  , "SUB.L"   ,        1, 0xff, 0x1f, 1026 }, /* 1001 0010 10 */
  627. { op_w     , "SUBA.W"  ,        9, 0xff, 0x1f, 1026 }, /* 1001 0010 11 */
  628. { dual_op  , "SUB.B"   ,        1, 0xfc, 0x03, 1052 }, /* 1001 0011 00 */
  629. { dual_op  , "SUB.W"   ,        1, 0xfc, 0x03, 1053 }, /* 1001 0011 01 */
  630. { dual_op  , "SUB.L"   ,        1, 0xfc, 0x03, 1054 }, /* 1001 0011 10 */
  631. { op_l     , "SUBA.L"  ,        9, 0xff, 0x1f, 1026 }, /* 1001 0011 11 */
  632. { dual_op  , "SUB.B"   ,        2, 0xff, 0x1f, 1026 }, /* 1001 0100 00 */
  633. { dual_op  , "SUB.W"   ,        2, 0xff, 0x1f, 1026 }, /* 1001 0100 01 */
  634. { dual_op  , "SUB.L"   ,        2, 0xff, 0x1f, 1026 }, /* 1001 0100 10 */
  635. { op_w     , "SUBA.W"  ,       10, 0xff, 0x1f, 1026 }, /* 1001 0100 11 */
  636. { dual_op  , "SUB.B"   ,        2, 0xfc, 0x03, 1052 }, /* 1001 0101 00 */
  637. { dual_op  , "SUB.W"   ,        2, 0xfc, 0x03, 1053 }, /* 1001 0101 01 */
  638. { dual_op  , "SUB.L"   ,        2, 0xfc, 0x03, 1054 }, /* 1001 0101 10 */
  639. { op_l     , "SUBA.L"  ,       10, 0xff, 0x1f, 1026 }, /* 1001 0101 11 */
  640. { dual_op  , "SUB.B"   ,        3, 0xff, 0x1f, 1026 }, /* 1001 0110 00 */
  641. { dual_op  , "SUB.W"   ,        3, 0xff, 0x1f, 1026 }, /* 1001 0110 01 */
  642. { dual_op  , "SUB.L"   ,        3, 0xff, 0x1f, 1026 }, /* 1001 0110 10 */
  643. { op_w     , "SUBA.W"  ,       11, 0xff, 0x1f, 1026 }, /* 1001 0110 11 */
  644. { dual_op  , "SUB.B"   ,        3, 0xfc, 0x03, 1052 }, /* 1001 0111 00 */
  645. { dual_op  , "SUB.W"   ,        3, 0xfc, 0x03, 1053 }, /* 1001 0111 01 */
  646. { dual_op  , "SUB.L"   ,        3, 0xfc, 0x03, 1054 }, /* 1001 0111 10 */
  647. { op_l     , "SUBA.L"  ,       11, 0xff, 0x1f, 1026 }, /* 1001 0111 11 */
  648. { dual_op  , "SUB.B"   ,        4, 0xff, 0x1f, 1026 }, /* 1001 1000 00 */
  649. { dual_op  , "SUB.W"   ,        4, 0xff, 0x1f, 1026 }, /* 1001 1000 01 */
  650. { dual_op  , "SUB.L"   ,        4, 0xff, 0x1f, 1026 }, /* 1001 1000 10 */
  651. { op_w     , "SUBA.W"  ,       12, 0xff, 0x1f, 1026 }, /* 1001 1000 11 */
  652. { dual_op  , "SUB.B"   ,        4, 0xfc, 0x03, 1052 }, /* 1001 1001 00 */
  653. { dual_op  , "SUB.W"   ,        4, 0xfc, 0x03, 1053 }, /* 1001 1001 01 */
  654. { dual_op  , "SUB.L"   ,        4, 0xfc, 0x03, 1054 }, /* 1001 1001 10 */
  655. { op_l     , "SUBA.L"  ,       12, 0xff, 0x1f, 1026 }, /* 1001 1001 11 */
  656. { dual_op  , "SUB.B"   ,        5, 0xff, 0x1f, 1026 }, /* 1001 1010 00 */
  657. { dual_op  , "SUB.W"   ,        5, 0xff, 0x1f, 1026 }, /* 1001 1010 01 */
  658. { dual_op  , "SUB.L"   ,        5, 0xff, 0x1f, 1026 }, /* 1001 1010 10 */
  659. { op_w     , "SUBA.W"  ,       13, 0xff, 0x1f, 1026 }, /* 1001 1010 11 */
  660. { dual_op  , "SUB.B"   ,        5, 0xfc, 0x03, 1052 }, /* 1001 1011 00 */
  661. { dual_op  , "SUB.W"   ,        5, 0xfc, 0x03, 1053 }, /* 1001 1011 01 */
  662. { dual_op  , "SUB.L"   ,        5, 0xfc, 0x03, 1054 }, /* 1001 1011 10 */
  663. { op_l     , "SUBA.L"  ,       13, 0xff, 0x1f, 1026 }, /* 1001 1011 11 */
  664. { dual_op  , "SUB.B"   ,        6, 0xff, 0x1f, 1026 }, /* 1001 1100 00 */
  665. { dual_op  , "SUB.W"   ,        6, 0xff, 0x1f, 1026 }, /* 1001 1100 01 */
  666. { dual_op  , "SUB.L"   ,        6, 0xff, 0x1f, 1026 }, /* 1001 1100 10 */
  667. { op_w     , "SUBA.W"  ,       14, 0xff, 0x1f, 1026 }, /* 1001 1100 11 */
  668. { dual_op  , "SUB.B"   ,        6, 0xfc, 0x03, 1052 }, /* 1001 1101 00 */
  669. { dual_op  , "SUB.W"   ,        6, 0xfc, 0x03, 1053 }, /* 1001 1101 01 */
  670. { dual_op  , "SUB.L"   ,        6, 0xfc, 0x03, 1054 }, /* 1001 1101 10 */
  671. { op_l     , "SUBA.L"  ,       14, 0xff, 0x1f, 1026 }, /* 1001 1101 11 */
  672. { dual_op  , "SUB.B"   ,        7, 0xff, 0x1f, 1026 }, /* 1001 1110 00 */
  673. { dual_op  , "SUB.W"   ,        7, 0xff, 0x1f, 1026 }, /* 1001 1110 01 */
  674. { dual_op  , "SUB.L"   ,        7, 0xff, 0x1f, 1026 }, /* 1001 1110 10 */
  675. { op_w     , "SUBA.W"  ,       15, 0xff, 0x1f, 1026 }, /* 1001 1110 11 */
  676. { dual_op  , "SUB.B"   ,        7, 0xfc, 0x03, 1052 }, /* 1001 1111 00 */
  677. { dual_op  , "SUB.W"   ,        7, 0xfc, 0x03, 1053 }, /* 1001 1111 01 */
  678. { dual_op  , "SUB.L"   ,        7, 0xfc, 0x03, 1054 }, /* 1001 1111 10 */
  679. { op_l     , "SUBA.L"  ,       15, 0xff, 0x1f, 1026 }, /* 1001 1111 11 */
  680. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0000 00 */
  681. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0000 01 */
  682. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0000 10 */
  683. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0000 11 */
  684. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0001 00 */
  685. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0001 01 */
  686. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0001 10 */
  687. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0001 11 */
  688. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0010 00 */
  689. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0010 01 */
  690. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0010 10 */
  691. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0010 11 */
  692. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0011 00 */
  693. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0011 01 */
  694. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0011 10 */
  695. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0011 11 */
  696. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0100 00 */
  697. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0100 01 */
  698. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0100 10 */
  699. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0100 11 */
  700. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0101 00 */
  701. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0101 01 */
  702. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0101 10 */
  703. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0101 11 */
  704. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0110 00 */
  705. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0110 01 */
  706. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0110 10 */
  707. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0110 11 */
  708. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0111 00 */
  709. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0111 01 */
  710. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0111 10 */
  711. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 0111 11 */
  712. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1000 00 */
  713. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1000 01 */
  714. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1000 10 */
  715. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1000 11 */
  716. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1001 00 */
  717. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1001 01 */
  718. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1001 10 */
  719. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1001 11 */
  720. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1010 00 */
  721. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1010 01 */
  722. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1010 10 */
  723. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1010 11 */
  724. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1011 00 */
  725. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1011 01 */
  726. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1011 10 */
  727. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1011 11 */
  728. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1100 00 */
  729. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1100 01 */
  730. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1100 10 */
  731. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1100 11 */
  732. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1101 00 */
  733. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1101 01 */
  734. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1101 10 */
  735. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1101 11 */
  736. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1110 00 */
  737. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1110 01 */
  738. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1110 10 */
  739. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1110 11 */
  740. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1111 00 */
  741. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1111 01 */
  742. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1111 10 */
  743. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1010 1111 11 */
  744. { dual_op  , "CMP.B"   ,        0, 0xff, 0x1f, 1026 }, /* 1011 0000 00 */
  745. { dual_op  , "CMP.W"   ,        0, 0xff, 0x1f, 1026 }, /* 1011 0000 01 */
  746. { dual_op  , "CMP.L"   ,        0, 0xff, 0x1f, 1026 }, /* 1011 0000 10 */
  747. { op_w     , "CMPA.W"  ,        8, 0xff, 0x1f, 1026 }, /* 1011 0000 11 */
  748. { dual_op  , "EOR.B"   ,        0, 0xfd, 0x03, 1034 }, /* 1011 0001 00 */
  749. { dual_op  , "EOR.W"   ,        0, 0xfd, 0x03, 1043 }, /* 1011 0001 01 */
  750. { dual_op  , "EOR.L"   ,        0, 0xfd, 0x03, 1044 }, /* 1011 0001 10 */
  751. { op_l     , "CMPA.L"  ,        8, 0xff, 0x1f, 1026 }, /* 1011 0001 11 */
  752. { dual_op  , "CMP.B"   ,        1, 0xff, 0x1f, 1026 }, /* 1011 0010 00 */
  753. { dual_op  , "CMP.W"   ,        1, 0xff, 0x1f, 1026 }, /* 1011 0010 01 */
  754. { dual_op  , "CMP.L"   ,        1, 0xff, 0x1f, 1026 }, /* 1011 0010 10 */
  755. { op_w     , "CMPA.W"  ,        9, 0xff, 0x1f, 1026 }, /* 1011 0010 11 */
  756. { dual_op  , "EOR.B"   ,        1, 0xfd, 0x03, 1034 }, /* 1011 0011 00 */
  757. { dual_op  , "EOR.W"   ,        1, 0xfd, 0x03, 1043 }, /* 1011 0011 01 */
  758. { dual_op  , "EOR.L"   ,        1, 0xfd, 0x03, 1044 }, /* 1011 0011 10 */
  759. { op_l     , "CMPA.L"  ,        9, 0xff, 0x1f, 1026 }, /* 1011 0011 11 */
  760. { dual_op  , "CMP.B"   ,        2, 0xff, 0x1f, 1026 }, /* 1011 0100 00 */
  761. { dual_op  , "CMP.W"   ,        2, 0xff, 0x1f, 1026 }, /* 1011 0100 01 */
  762. { dual_op  , "CMP.L"   ,        2, 0xff, 0x1f, 1026 }, /* 1011 0100 10 */
  763. { op_w     , "CMPA.W"  ,       10, 0xff, 0x1f, 1026 }, /* 1011 0100 11 */
  764. { dual_op  , "EOR.B"   ,        2, 0xfd, 0x03, 1034 }, /* 1011 0101 00 */
  765. { dual_op  , "EOR.W"   ,        2, 0xfd, 0x03, 1043 }, /* 1011 0101 01 */
  766. { dual_op  , "EOR.L"   ,        2, 0xfd, 0x03, 1044 }, /* 1011 0101 10 */
  767. { op_l     , "CMPA.L"  ,       10, 0xff, 0x1f, 1026 }, /* 1011 0101 11 */
  768. { dual_op  , "CMP.B"   ,        3, 0xff, 0x1f, 1026 }, /* 1011 0110 00 */
  769. { dual_op  , "CMP.W"   ,        3, 0xff, 0x1f, 1026 }, /* 1011 0110 01 */
  770. { dual_op  , "CMP.L"   ,        3, 0xff, 0x1f, 1026 }, /* 1011 0110 10 */
  771. { op_w     , "CMPA.W"  ,       11, 0xff, 0x1f, 1026 }, /* 1011 0110 11 */
  772. { dual_op  , "EOR.B"   ,        3, 0xfd, 0x03, 1034 }, /* 1011 0111 00 */
  773. { dual_op  , "EOR.W"   ,        3, 0xfd, 0x03, 1043 }, /* 1011 0111 01 */
  774. { dual_op  , "EOR.L"   ,        3, 0xfd, 0x03, 1044 }, /* 1011 0111 10 */
  775. { op_l     , "CMPA.L"  ,       11, 0xff, 0x1f, 1026 }, /* 1011 0111 11 */
  776. { dual_op  , "CMP.B"   ,        4, 0xff, 0x1f, 1026 }, /* 1011 1000 00 */
  777. { dual_op  , "CMP.W"   ,        4, 0xff, 0x1f, 1026 }, /* 1011 1000 01 */
  778. { dual_op  , "CMP.L"   ,        4, 0xff, 0x1f, 1026 }, /* 1011 1000 10 */
  779. { op_w     , "CMPA.W"  ,       12, 0xff, 0x1f, 1026 }, /* 1011 1000 11 */
  780. { dual_op  , "EOR.B"   ,        4, 0xfd, 0x03, 1034 }, /* 1011 1001 00 */
  781. { dual_op  , "EOR.W"   ,        4, 0xfd, 0x03, 1043 }, /* 1011 1001 01 */
  782. { dual_op  , "EOR.L"   ,        4, 0xfd, 0x03, 1044 }, /* 1011 1001 10 */
  783. { op_l     , "CMPA.L"  ,       12, 0xff, 0x1f, 1026 }, /* 1011 1001 11 */
  784. { dual_op  , "CMP.B"   ,        5, 0xff, 0x1f, 1026 }, /* 1011 1010 00 */
  785. { dual_op  , "CMP.W"   ,        5, 0xff, 0x1f, 1026 }, /* 1011 1010 01 */
  786. { dual_op  , "CMP.L"   ,        5, 0xff, 0x1f, 1026 }, /* 1011 1010 10 */
  787. { op_w     , "CMPA.W"  ,       13, 0xff, 0x1f, 1026 }, /* 1011 1010 11 */
  788. { dual_op  , "EOR.B"   ,        5, 0xfd, 0x03, 1034 }, /* 1011 1011 00 */
  789. { dual_op  , "EOR.W"   ,        5, 0xfd, 0x03, 1043 }, /* 1011 1011 01 */
  790. { dual_op  , "EOR.L"   ,        5, 0xfd, 0x03, 1044 }, /* 1011 1011 10 */
  791. { op_l     , "CMPA.L"  ,       13, 0xff, 0x1f, 1026 }, /* 1011 1011 11 */
  792. { dual_op  , "CMP.B"   ,        6, 0xff, 0x1f, 1026 }, /* 1011 1100 00 */
  793. { dual_op  , "CMP.W"   ,        6, 0xff, 0x1f, 1026 }, /* 1011 1100 01 */
  794. { dual_op  , "CMP.L"   ,        6, 0xff, 0x1f, 1026 }, /* 1011 1100 10 */
  795. { op_w     , "CMPA.W"  ,       14, 0xff, 0x1f, 1026 }, /* 1011 1100 11 */
  796. { dual_op  , "EOR.B"   ,        6, 0xfd, 0x03, 1034 }, /* 1011 1101 00 */
  797. { dual_op  , "EOR.W"   ,        6, 0xfd, 0x03, 1043 }, /* 1011 1101 01 */
  798. { dual_op  , "EOR.L"   ,        6, 0xfd, 0x03, 1044 }, /* 1011 1101 10 */
  799. { op_l     , "CMPA.L"  ,       14, 0xff, 0x1f, 1026 }, /* 1011 1101 11 */
  800. { dual_op  , "CMP.B"   ,        7, 0xff, 0x1f, 1026 }, /* 1011 1110 00 */
  801. { dual_op  , "CMP.W"   ,        7, 0xff, 0x1f, 1026 }, /* 1011 1110 01 */
  802. { dual_op  , "CMP.L"   ,        7, 0xff, 0x1f, 1026 }, /* 1011 1110 10 */
  803. { op_w     , "CMPA.W"  ,       15, 0xff, 0x1f, 1026 }, /* 1011 1110 11 */
  804. { dual_op  , "EOR.B"   ,        7, 0xfd, 0x03, 1034 }, /* 1011 1111 00 */
  805. { dual_op  , "EOR.W"   ,        7, 0xfd, 0x03, 1043 }, /* 1011 1111 01 */
  806. { dual_op  , "EOR.L"   ,        7, 0xfd, 0x03, 1044 }, /* 1011 1111 10 */
  807. { op_l     , "CMPA.L"  ,       15, 0xff, 0x1f, 1026 }, /* 1011 1111 11 */
  808. { dual_op  , "AND.B"   ,        0, 0xfd, 0x1f, 1026 }, /* 1100 0000 00 */
  809. { dual_op  , "AND.W"   ,        0, 0xfd, 0x1f, 1026 }, /* 1100 0000 01 */
  810. { dual_op  , "AND.L"   ,        0, 0xfd, 0x1f, 1026 }, /* 1100 0000 10 */
  811. { op_w     , "MULU.W"  ,        0, 0xfd, 0x1f, 1026 }, /* 1100 0000 11 */
  812. { dual_op  , "AND.B"   ,        0, 0xfc, 0x03, 1035 }, /* 1100 0001 00 */
  813. { dual_op  , "AND.W"   ,        0, 0xfc, 0x03, 1036 }, /* 1100 0001 01 */
  814. { dual_op  , "AND.L"   ,        0, 0xfc, 0x03, 1036 }, /* 1100 0001 10 */
  815. { op_w     , "MULS.W"  ,        0, 0xfd, 0x1f, 1026 }, /* 1100 0001 11 */
  816. { dual_op  , "AND.B"   ,        1, 0xfd, 0x1f, 1026 }, /* 1100 0010 00 */
  817. { dual_op  , "AND.W"   ,        1, 0xfd, 0x1f, 1026 }, /* 1100 0010 01 */
  818. { dual_op  , "AND.L"   ,        1, 0xfd, 0x1f, 1026 }, /* 1100 0010 10 */
  819. { op_w     , "MULU.W"  ,        1, 0xfd, 0x1f, 1026 }, /* 1100 0010 11 */
  820. { dual_op  , "AND.B"   ,        1, 0xfc, 0x03, 1035 }, /* 1100 0011 00 */
  821. { dual_op  , "AND.W"   ,        1, 0xfc, 0x03, 1036 }, /* 1100 0011 01 */
  822. { dual_op  , "AND.L"   ,        1, 0xfc, 0x03, 1036 }, /* 1100 0011 10 */
  823. { op_w     , "MULS.W"  ,        1, 0xfd, 0x1f, 1026 }, /* 1100 0011 11 */
  824. { dual_op  , "AND.B"   ,        2, 0xfd, 0x1f, 1026 }, /* 1100 0100 00 */
  825. { dual_op  , "AND.W"   ,        2, 0xfd, 0x1f, 1026 }, /* 1100 0100 01 */
  826. { dual_op  , "AND.L"   ,        2, 0xfd, 0x1f, 1026 }, /* 1100 0100 10 */
  827. { op_w     , "MULU.W"  ,        2, 0xfd, 0x1f, 1026 }, /* 1100 0100 11 */
  828. { dual_op  , "AND.B"   ,        2, 0xfc, 0x03, 1035 }, /* 1100 0101 00 */
  829. { dual_op  , "AND.W"   ,        2, 0xfc, 0x03, 1036 }, /* 1100 0101 01 */
  830. { dual_op  , "AND.L"   ,        2, 0xfc, 0x03, 1036 }, /* 1100 0101 10 */
  831. { op_w     , "MULS.W"  ,        2, 0xfd, 0x1f, 1026 }, /* 1100 0101 11 */
  832. { dual_op  , "AND.B"   ,        3, 0xfd, 0x1f, 1026 }, /* 1100 0110 00 */
  833. { dual_op  , "AND.W"   ,        3, 0xfd, 0x1f, 1026 }, /* 1100 0110 01 */
  834. { dual_op  , "AND.L"   ,        3, 0xfd, 0x1f, 1026 }, /* 1100 0110 10 */
  835. { op_w     , "MULU.W"  ,        3, 0xfd, 0x1f, 1026 }, /* 1100 0110 11 */
  836. { dual_op  , "AND.B"   ,        3, 0xfc, 0x03, 1035 }, /* 1100 0111 00 */
  837. { dual_op  , "AND.W"   ,        3, 0xfc, 0x03, 1036 }, /* 1100 0111 01 */
  838. { dual_op  , "AND.L"   ,        3, 0xfc, 0x03, 1036 }, /* 1100 0111 10 */
  839. { op_w     , "MULS.W"  ,        3, 0xfd, 0x1f, 1026 }, /* 1100 0111 11 */
  840. { dual_op  , "AND.B"   ,        4, 0xfd, 0x1f, 1026 }, /* 1100 1000 00 */
  841. { dual_op  , "AND.W"   ,        4, 0xfd, 0x1f, 1026 }, /* 1100 1000 01 */
  842. { dual_op  , "AND.L"   ,        4, 0xfd, 0x1f, 1026 }, /* 1100 1000 10 */
  843. { op_w     , "MULU.W"  ,        4, 0xfd, 0x1f, 1026 }, /* 1100 1000 11 */
  844. { dual_op  , "AND.B"   ,        4, 0xfc, 0x03, 1035 }, /* 1100 1001 00 */
  845. { dual_op  , "AND.W"   ,        4, 0xfc, 0x03, 1036 }, /* 1100 1001 01 */
  846. { dual_op  , "AND.L"   ,        4, 0xfc, 0x03, 1036 }, /* 1100 1001 10 */
  847. { op_w     , "MULS.W"  ,        4, 0xfd, 0x1f, 1026 }, /* 1100 1001 11 */
  848. { dual_op  , "AND.B"   ,        5, 0xfd, 0x1f, 1026 }, /* 1100 1010 00 */
  849. { dual_op  , "AND.W"   ,        5, 0xfd, 0x1f, 1026 }, /* 1100 1010 01 */
  850. { dual_op  , "AND.L"   ,        5, 0xfd, 0x1f, 1026 }, /* 1100 1010 10 */
  851. { op_w     , "MULU.W"  ,        5, 0xfd, 0x1f, 1026 }, /* 1100 1010 11 */
  852. { dual_op  , "AND.B"   ,        5, 0xfc, 0x03, 1035 }, /* 1100 1011 00 */
  853. { dual_op  , "AND.W"   ,        5, 0xfc, 0x03, 1036 }, /* 1100 1011 01 */
  854. { dual_op  , "AND.L"   ,        5, 0xfc, 0x03, 1036 }, /* 1100 1011 10 */
  855. { op_w     , "MULS.W"  ,        5, 0xfd, 0x1f, 1026 }, /* 1100 1011 11 */
  856. { dual_op  , "AND.B"   ,        6, 0xfd, 0x1f, 1026 }, /* 1100 1100 00 */
  857. { dual_op  , "AND.W"   ,        6, 0xfd, 0x1f, 1026 }, /* 1100 1100 01 */
  858. { dual_op  , "AND.L"   ,        6, 0xfd, 0x1f, 1026 }, /* 1100 1100 10 */
  859. { op_w     , "MULU.W"  ,        6, 0xfd, 0x1f, 1026 }, /* 1100 1100 11 */
  860. { dual_op  , "AND.B"   ,        6, 0xfc, 0x03, 1035 }, /* 1100 1101 00 */
  861. { dual_op  , "AND.W"   ,        6, 0xfc, 0x03, 1036 }, /* 1100 1101 01 */
  862. { dual_op  , "AND.L"   ,        6, 0xfc, 0x03, 1036 }, /* 1100 1101 10 */
  863. { op_w     , "MULS.W"  ,        6, 0xfd, 0x1f, 1026 }, /* 1100 1101 11 */
  864. { dual_op  , "AND.B"   ,        7, 0xfd, 0x1f, 1026 }, /* 1100 1110 00 */
  865. { dual_op  , "AND.W"   ,        7, 0xfd, 0x1f, 1026 }, /* 1100 1110 01 */
  866. { dual_op  , "AND.L"   ,        7, 0xfd, 0x1f, 1026 }, /* 1100 1110 10 */
  867. { op_w     , "MULU.W"  ,        7, 0xfd, 0x1f, 1026 }, /* 1100 1110 11 */
  868. { dual_op  , "AND.B"   ,        7, 0xfc, 0x03, 1035 }, /* 1100 1111 00 */
  869. { dual_op  , "AND.W"   ,        7, 0xfc, 0x03, 1036 }, /* 1100 1111 01 */
  870. { dual_op  , "AND.L"   ,        7, 0xfc, 0x03, 1036 }, /* 1100 1111 10 */
  871. { op_w     , "MULS.W"  ,        7, 0xfd, 0x1f, 1026 }, /* 1100 1111 11 */
  872. { dual_op  , "ADD.B"   ,        0, 0xff, 0x1f, 1026 }, /* 1101 0000 00 */
  873. { dual_op  , "ADD.W"   ,        0, 0xff, 0x1f, 1026 }, /* 1101 0000 01 */
  874. { dual_op  , "ADD.L"   ,        0, 0xff, 0x1f, 1026 }, /* 1101 0000 10 */
  875. { op_w     , "ADDA.W"  ,        8, 0xff, 0x1f, 1026 }, /* 1101 0000 11 */
  876. { dual_op  , "ADD.B"   ,        0, 0xfc, 0x03, 1033 }, /* 1101 0001 00 */
  877. { dual_op  , "ADD.W"   ,        0, 0xfc, 0x03, 1038 }, /* 1101 0001 01 */
  878. { dual_op  , "ADD.L"   ,        0, 0xfc, 0x03, 1039 }, /* 1101 0001 10 */
  879. { op_l     , "ADDA.L"  ,        8, 0xff, 0x1f, 1026 }, /* 1101 0001 11 */
  880. { dual_op  , "ADD.B"   ,        1, 0xff, 0x1f, 1026 }, /* 1101 0010 00 */
  881. { dual_op  , "ADD.W"   ,        1, 0xff, 0x1f, 1026 }, /* 1101 0010 01 */
  882. { dual_op  , "ADD.L"   ,        1, 0xff, 0x1f, 1026 }, /* 1101 0010 10 */
  883. { op_w     , "ADDA.W"  ,        9, 0xff, 0x1f, 1026 }, /* 1101 0010 11 */
  884. { dual_op  , "ADD.B"   ,        1, 0xfc, 0x03, 1033 }, /* 1101 0011 00 */
  885. { dual_op  , "ADD.W"   ,        1, 0xfc, 0x03, 1038 }, /* 1101 0011 01 */
  886. { dual_op  , "ADD.L"   ,        1, 0xfc, 0x03, 1039 }, /* 1101 0011 10 */
  887. { op_l     , "ADDA.L"  ,        9, 0xff, 0x1f, 1026 }, /* 1101 0011 11 */
  888. { dual_op  , "ADD.B"   ,        2, 0xff, 0x1f, 1026 }, /* 1101 0100 00 */
  889. { dual_op  , "ADD.W"   ,        2, 0xff, 0x1f, 1026 }, /* 1101 0100 01 */
  890. { dual_op  , "ADD.L"   ,        2, 0xff, 0x1f, 1026 }, /* 1101 0100 10 */
  891. { op_w     , "ADDA.W"  ,       10, 0xff, 0x1f, 1026 }, /* 1101 0100 11 */
  892. { dual_op  , "ADD.B"   ,        2, 0xfc, 0x03, 1033 }, /* 1101 0101 00 */
  893. { dual_op  , "ADD.W"   ,        2, 0xfc, 0x03, 1038 }, /* 1101 0101 01 */
  894. { dual_op  , "ADD.L"   ,        2, 0xfc, 0x03, 1039 }, /* 1101 0101 10 */
  895. { op_l     , "ADDA.L"  ,       10, 0xff, 0x1f, 1026 }, /* 1101 0101 11 */
  896. { dual_op  , "ADD.B"   ,        3, 0xff, 0x1f, 1026 }, /* 1101 0110 00 */
  897. { dual_op  , "ADD.W"   ,        3, 0xff, 0x1f, 1026 }, /* 1101 0110 01 */
  898. { dual_op  , "ADD.L"   ,        3, 0xff, 0x1f, 1026 }, /* 1101 0110 10 */
  899. { op_w     , "ADDA.W"  ,       11, 0xff, 0x1f, 1026 }, /* 1101 0110 11 */
  900. { dual_op  , "ADD.B"   ,        3, 0xfc, 0x03, 1033 }, /* 1101 0111 00 */
  901. { dual_op  , "ADD.W"   ,        3, 0xfc, 0x03, 1038 }, /* 1101 0111 01 */
  902. { dual_op  , "ADD.L"   ,        3, 0xfc, 0x03, 1039 }, /* 1101 0111 10 */
  903. { op_l     , "ADDA.L"  ,       11, 0xff, 0x1f, 1026 }, /* 1101 0111 11 */
  904. { dual_op  , "ADD.B"   ,        4, 0xff, 0x1f, 1026 }, /* 1101 1000 00 */
  905. { dual_op  , "ADD.W"   ,        4, 0xff, 0x1f, 1026 }, /* 1101 1000 01 */
  906. { dual_op  , "ADD.L"   ,        4, 0xff, 0x1f, 1026 }, /* 1101 1000 10 */
  907. { op_w     , "ADDA.W"  ,       12, 0xff, 0x1f, 1026 }, /* 1101 1000 11 */
  908. { dual_op  , "ADD.B"   ,        4, 0xfc, 0x03, 1033 }, /* 1101 1001 00 */
  909. { dual_op  , "ADD.W"   ,        4, 0xfc, 0x03, 1038 }, /* 1101 1001 01 */
  910. { dual_op  , "ADD.L"   ,        4, 0xfc, 0x03, 1039 }, /* 1101 1001 10 */
  911. { op_l     , "ADDA.L"  ,       12, 0xff, 0x1f, 1026 }, /* 1101 1001 11 */
  912. { dual_op  , "ADD.B"   ,        5, 0xff, 0x1f, 1026 }, /* 1101 1010 00 */
  913. { dual_op  , "ADD.W"   ,        5, 0xff, 0x1f, 1026 }, /* 1101 1010 01 */
  914. { dual_op  , "ADD.L"   ,        5, 0xff, 0x1f, 1026 }, /* 1101 1010 10 */
  915. { op_w     , "ADDA.W"  ,       13, 0xff, 0x1f, 1026 }, /* 1101 1010 11 */
  916. { dual_op  , "ADD.B"   ,        5, 0xfc, 0x03, 1033 }, /* 1101 1011 00 */
  917. { dual_op  , "ADD.W"   ,        5, 0xfc, 0x03, 1038 }, /* 1101 1011 01 */
  918. { dual_op  , "ADD.L"   ,        5, 0xfc, 0x03, 1039 }, /* 1101 1011 10 */
  919. { op_l     , "ADDA.L"  ,       13, 0xff, 0x1f, 1026 }, /* 1101 1011 11 */
  920. { dual_op  , "ADD.B"   ,        6, 0xff, 0x1f, 1026 }, /* 1101 1100 00 */
  921. { dual_op  , "ADD.W"   ,        6, 0xff, 0x1f, 1026 }, /* 1101 1100 01 */
  922. { dual_op  , "ADD.L"   ,        6, 0xff, 0x1f, 1026 }, /* 1101 1100 10 */
  923. { op_w     , "ADDA.W"  ,       14, 0xff, 0x1f, 1026 }, /* 1101 1100 11 */
  924. { dual_op  , "ADD.B"   ,        6, 0xfc, 0x03, 1033 }, /* 1101 1101 00 */
  925. { dual_op  , "ADD.W"   ,        6, 0xfc, 0x03, 1038 }, /* 1101 1101 01 */
  926. { dual_op  , "ADD.L"   ,        6, 0xfc, 0x03, 1039 }, /* 1101 1101 10 */
  927. { op_l     , "ADDA.L"  ,       14, 0xff, 0x1f, 1026 }, /* 1101 1101 11 */
  928. { dual_op  , "ADD.B"   ,        7, 0xff, 0x1f, 1026 }, /* 1101 1110 00 */
  929. { dual_op  , "ADD.W"   ,        7, 0xff, 0x1f, 1026 }, /* 1101 1110 01 */
  930. { dual_op  , "ADD.L"   ,        7, 0xff, 0x1f, 1026 }, /* 1101 1110 10 */
  931. { op_w     , "ADDA.W"  ,       15, 0xff, 0x1f, 1026 }, /* 1101 1110 11 */
  932. { dual_op  , "ADD.B"   ,        7, 0xfc, 0x03, 1033 }, /* 1101 1111 00 */
  933. { dual_op  , "ADD.W"   ,        7, 0xfc, 0x03, 1038 }, /* 1101 1111 01 */
  934. { dual_op  , "ADD.L"   ,        7, 0xfc, 0x03, 1039 }, /* 1101 1111 10 */
  935. { op_l     , "ADDA.L"  ,       15, 0xff, 0x1f, 1026 }, /* 1101 1111 11 */
  936. { shiftreg , "R.B"     ,        8, 0xff, 0xff, 1026 }, /* 1110 0000 00 */
  937. { shiftreg , "R.W"     ,        8, 0xff, 0xff, 1026 }, /* 1110 0000 01 */
  938. { shiftreg , "R.L"     ,        8, 0xff, 0xff, 1026 }, /* 1110 0000 10 */
  939. { single_op, "ASR.W"   , ACC_WORD, 0xfc, 0x03, 1026 }, /* 1110 0000 11 */
  940. { shiftreg , "L.B"     ,        8, 0xff, 0xff, 1026 }, /* 1110 0001 00 */
  941. { shiftreg , "L.W"     ,        8, 0xff, 0xff, 1026 }, /* 1110 0001 01 */
  942. { shiftreg , "L.L"     ,        8, 0xff, 0xff, 1026 }, /* 1110 0001 10 */
  943. { single_op, "ASL.W"   , ACC_WORD, 0xfc, 0x03, 1026 }, /* 1110 0001 11 */
  944. { shiftreg , "R.B"     ,        1, 0xff, 0xff, 1026 }, /* 1110 0010 00 */
  945. { shiftreg , "R.W"     ,        1, 0xff, 0xff, 1026 }, /* 1110 0010 01 */
  946. { shiftreg , "R.L"     ,        1, 0xff, 0xff, 1026 }, /* 1110 0010 10 */
  947. { single_op, "LSR.W"   , ACC_WORD, 0xfc, 0x03, 1026 }, /* 1110 0010 11 */
  948. { shiftreg , "L.B"     ,        1, 0xff, 0xff, 1026 }, /* 1110 0011 00 */
  949. { shiftreg , "L.W"     ,        1, 0xff, 0xff, 1026 }, /* 1110 0011 01 */
  950. { shiftreg , "L.L"     ,        1, 0xff, 0xff, 1026 }, /* 1110 0011 10 */
  951. { single_op, "LSL.W"   , ACC_WORD, 0xfc, 0x03, 1026 }, /* 1110 0011 11 */
  952. { shiftreg , "R.B"     ,        2, 0xff, 0xff, 1026 }, /* 1110 0100 00 */
  953. { shiftreg , "R.W"     ,        2, 0xff, 0xff, 1026 }, /* 1110 0100 01 */
  954. { shiftreg , "R.L"     ,        2, 0xff, 0xff, 1026 }, /* 1110 0100 10 */
  955. { single_op, "ROXR.W"  , ACC_WORD, 0xfc, 0x03, 1026 }, /* 1110 0100 11 */
  956. { shiftreg , "L.B"     ,        2, 0xff, 0xff, 1026 }, /* 1110 0101 00 */
  957. { shiftreg , "L.W"     ,        2, 0xff, 0xff, 1026 }, /* 1110 0101 01 */
  958. { shiftreg , "L.L"     ,        2, 0xff, 0xff, 1026 }, /* 1110 0101 10 */
  959. { single_op, "ROXL.W"  , ACC_WORD, 0xfc, 0x03, 1026 }, /* 1110 0101 11 */
  960. { shiftreg , "R.B"     ,        3, 0xff, 0xff, 1026 }, /* 1110 0110 00 */
  961. { shiftreg , "R.W"     ,        3, 0xff, 0xff, 1026 }, /* 1110 0110 01 */
  962. { shiftreg , "R.L"     ,        3, 0xff, 0xff, 1026 }, /* 1110 0110 10 */
  963. { single_op, "ROR.W"   , ACC_WORD, 0xfc, 0x03, 1026 }, /* 1110 0110 11 */
  964. { shiftreg , "L.B"     ,        3, 0xff, 0xff, 1026 }, /* 1110 0111 00 */
  965. { shiftreg , "L.W"     ,        3, 0xff, 0xff, 1026 }, /* 1110 0111 01 */
  966. { shiftreg , "L.L"     ,        3, 0xff, 0xff, 1026 }, /* 1110 0111 10 */
  967. { single_op, "ROL.W"   , ACC_WORD, 0xfc, 0x03, 1026 }, /* 1110 0111 11 */
  968. { shiftreg , "R.B"     ,        4, 0xff, 0xff, 1026 }, /* 1110 1000 00 */
  969. { shiftreg , "R.W"     ,        4, 0xff, 0xff, 1026 }, /* 1110 1000 01 */
  970. { shiftreg , "R.L"     ,        4, 0xff, 0xff, 1026 }, /* 1110 1000 10 */
  971. { bf_op    , "BFTST"   , SINGLEOP, 0xe5, 0x0f, 1026 }, /* 1110 1000 11 */
  972. { shiftreg , "L.B"     ,        4, 0xff, 0xff, 1026 }, /* 1110 1001 00 */
  973. { shiftreg , "L.W"     ,        4, 0xff, 0xff, 1026 }, /* 1110 1001 01 */
  974. { shiftreg , "L.L"     ,        4, 0xff, 0xff, 1026 }, /* 1110 1001 10 */
  975. { bf_op    , "BFEXTU"  , DATADEST, 0xe5, 0x0f, 1026 }, /* 1110 1001 11 */
  976. { shiftreg , "R.B"     ,        5, 0xff, 0xff, 1026 }, /* 1110 1010 00 */
  977. { shiftreg , "R.W"     ,        5, 0xff, 0xff, 1026 }, /* 1110 1010 01 */
  978. { shiftreg , "R.L"     ,        5, 0xff, 0xff, 1026 }, /* 1110 1010 10 */
  979. { bf_op    , "BFCHG"   , SINGLEOP, 0xe5, 0x03, 1026 }, /* 1110 1010 11 */
  980. { shiftreg , "L.B"     ,        5, 0xff, 0xff, 1026 }, /* 1110 1011 00 */
  981. { shiftreg , "L.W"     ,        5, 0xff, 0xff, 1026 }, /* 1110 1011 01 */
  982. { shiftreg , "L.L"     ,        5, 0xff, 0xff, 1026 }, /* 1110 1011 10 */
  983. { bf_op    , "BFEXTS"  , DATADEST, 0xe5, 0x0f, 1026 }, /* 1110 1011 11 */
  984. { shiftreg , "R.B"     ,        6, 0xff, 0xff, 1026 }, /* 1110 1100 00 */
  985. { shiftreg , "R.W"     ,        6, 0xff, 0xff, 1026 }, /* 1110 1100 01 */
  986. { shiftreg , "R.L"     ,        6, 0xff, 0xff, 1026 }, /* 1110 1100 10 */
  987. { bf_op    , "BFCLR"   , SINGLEOP, 0xe5, 0x03, 1026 }, /* 1110 1100 11 */
  988. { shiftreg , "L.B"     ,        6, 0xff, 0xff, 1026 }, /* 1110 1101 00 */
  989. { shiftreg , "L.W"     ,        6, 0xff, 0xff, 1026 }, /* 1110 1101 01 */
  990. { shiftreg , "L.L"     ,        6, 0xff, 0xff, 1026 }, /* 1110 1101 10 */
  991. { bf_op    , "BFFFO"   , DATADEST, 0xe5, 0x0f, 1026 }, /* 1110 1101 11 */
  992. { shiftreg , "R.B"     ,        7, 0xff, 0xff, 1026 }, /* 1110 1110 00 */
  993. { shiftreg , "R.W"     ,        7, 0xff, 0xff, 1026 }, /* 1110 1110 01 */
  994. { shiftreg , "R.L"     ,        7, 0xff, 0xff, 1026 }, /* 1110 1110 10 */
  995. { bf_op    , "BFSET"   , SINGLEOP, 0xe5, 0x03, 1026 }, /* 1110 1110 11 */
  996. { shiftreg , "L.B"     ,        7, 0xff, 0xff, 1026 }, /* 1110 1111 00 */
  997. { shiftreg , "L.W"     ,        7, 0xff, 0xff, 1026 }, /* 1110 1111 01 */
  998. { shiftreg , "L.L"     ,        7, 0xff, 0xff, 1026 }, /* 1110 1111 10 */
  999. { bf_op    , "BFINS"   ,  DATASRC, 0xe5, 0x03, 1026 }, /* 1110 1111 11 */
  1000.  
  1001. { mmu30    , 0         ,        7, 0xe5, 0x03, 1026 }, /* 1111 0000 00 */   
  1002. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0000 01 */   
  1003. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0000 10 */   
  1004. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0000 11 */   
  1005. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0001 00 */   
  1006. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0001 01 */   
  1007. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0001 10 */   
  1008. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0001 11 */   
  1009. /* FPU opcode encodings */
  1010. { fpu      , 0         ,        1, 0xff, 0xff, 1026 }, /* 1111 0010 00 */
  1011. { fscc     , "FS"      ,        1, 0xfd, 0x03, 1047 }, /* 1111 0010 01 */
  1012. { fbranch  , "FB"      , ACC_WORD, 0xff, 0x00, 1026 }, /* 1111 0010 10 */
  1013. { fbranch  , "FB"      , ACC_LONG, 0xff, 0x00, 1026 }, /* 1111 0010 11 */
  1014. { single_op, "FSAVE"   , ACC_LONG, 0xf4, 0x03, 1026 }, /* 1111 0011 00 */
  1015. { single_op, "FRESTORE", ACC_LONG, 0xec, 0x0f, 1026 }, /* 1111 0011 01 */
  1016. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1111 0011 10 */
  1017. { illegal  , 0         ,        0, 0xff, 0xff, 1026 }, /* 1111 0011 11 */
  1018.  
  1019. /* Opcodes for user-definable coprocessors */
  1020. { cache    , 0         ,        0, 0xee, 0xff, 1026 }, /* 1111 0100 00 */
  1021. { cache    , 0         ,        1, 0xee, 0xff, 1026 }, /* 1111 0100 01 */
  1022. { cache    , 0         ,        2, 0xee, 0xff, 1026 }, /* 1111 0100 10 */
  1023. { cache    , 0         ,        3, 0xee, 0xff, 1026 }, /* 1111 0100 11 */
  1024. { pflush40 , "PFLUSH"  ,        0, 0x0f, 0xff, 1026 }, /* 1111 0101 00 */
  1025. { ptest40  , "PTEST"   ,        7, 0x22, 0xff, 1026 }, /* 1111 0101 01 */
  1026. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0101 10 */
  1027. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0101 11 */
  1028. { move16   , "MOVE16"  ,        7, 0x1f, 0xff, 1026 }, /* 1111 0110 00 */
  1029. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0110 01 */
  1030. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0110 10 */
  1031. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0110 11 */
  1032. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0111 00 */
  1033. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0111 01 */
  1034. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0111 10 */
  1035. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 0111 11 */
  1036. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1000 00 */
  1037. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1000 01 */
  1038. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1000 10 */
  1039. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1000 11 */
  1040. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1001 00 */
  1041. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1001 01 */
  1042. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1001 10 */
  1043. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1001 11 */
  1044. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1010 00 */
  1045. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1010 01 */
  1046. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1010 10 */
  1047. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1010 11 */
  1048. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1011 00 */
  1049. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1011 01 */
  1050. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1011 10 */
  1051. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1011 11 */
  1052. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1100 00 */
  1053. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1100 01 */
  1054. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1100 10 */
  1055. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1100 11 */
  1056. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1101 00 */
  1057. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1101 01 */
  1058. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1101 10 */
  1059. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1101 11 */
  1060. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1110 00 */
  1061. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1110 01 */
  1062. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1110 10 */
  1063. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1110 11 */
  1064. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1111 00 */
  1065. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1111 01 */
  1066. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1111 10 */
  1067. { illegal  , 0         ,        7, 0xff, 0xff, 1026 }, /* 1111 1111 11 */
  1068.  
  1069. /* Here are the chained routines for handling doubly-defined opcodes */
  1070. { srccr    , 0         ,        0, 0x80, 0x10, 1026 }, /* 1024 */
  1071. { off_illegal,"ILLEGAL",        0, 0x80, 0x10, 1026 }, /* 1025 */
  1072. { illegal  , 0         ,        0, 0xff, 0xff,    0 }, /* 1026 */
  1073. { end_single_op, "RTM" ,NO_ACCESS, 0x03, 0x00, 1026 }, /* 1027 */
  1074. { restrict , "UNPK"    ,   ADJUST, 0x03, 0x00, 1026 }, /* 1028 */
  1075. { single_op, "SWAP"    , ACC_LONG, 0x01, 0x00, 1049 }, /* 1029 */
  1076. { single_op, "EXT.W"   , ACC_WORD, 0x01, 0x00, 1026 }, /* 1030 */
  1077. { restrict , "SBCD"    ,   NO_ADJ, 0x03, 0x00, 1026 }, /* 1031 */
  1078. { restrict , "PACK"    ,   ADJUST, 0x03, 0x00, 1026 }, /* 1032 */
  1079. { restrict , "ADDX.B"  ,   NO_ADJ, 0x03, 0x00, 1026 }, /* 1033 */
  1080. { cmpm     , "CMPM.B"  ,        0, 0x02, 0xff, 1026 }, /* 1034 */
  1081. { restrict , "ABCD.B"  ,   NO_ADJ, 0x03, 0x00, 1026 }, /* 1035 */
  1082. { exg      , "EXG"     ,        0, 0x03, 0x00, 1026 }, /* 1036 */
  1083. { movep    , "MOVEP"   ,        0, 0x02, 0x00, 1026 }, /* 1037 */
  1084. { restrict , "ADDX.W"  ,   NO_ADJ, 0x03, 0x00, 1026 }, /* 1038 */
  1085. { restrict , "ADDX.L"  ,   NO_ADJ, 0x03, 0x00, 1026 }, /* 1039 */
  1086. { cas2     , "CAS2.B"  , ACC_BYTE, 0x80, 0x10, 1026 }, /* 1040 */
  1087. { cas2     , "CAS2.W"  , ACC_WORD, 0x80, 0x10, 1026 }, /* 1041 */
  1088. { cas2     , "CAS2.L"  , ACC_LONG, 0x80, 0x10, 1026 }, /* 1042 */
  1089. { cmpm     , "CMPM.W"  ,        0, 0x02, 0xff, 1026 }, /* 1043 */
  1090. { cmpm     , "CMPM.L"  ,        0, 0x02, 0xff, 1026 }, /* 1044 */
  1091.  
  1092. { trapcc   , "TRAP"    ,        0, 0x80, 0x1c, 1026 }, /* 1045, TRAPcc */
  1093.  
  1094. { scc      , "S"       ,        0, 0xfd, 0x03, 1045 }, /* 1046, Scc */
  1095.  
  1096. { fdbranch , "FDB"    ,         0, 0x02, 0x00, 1048 }, /* 1047 */
  1097. { ftrapcc  , "FTRAP"  ,         0, 0x80, 0x1c, 1026 }, /* 1048 */
  1098. { bkpt     , "BKPT"    ,        0, 0x02, 0xff, 1026 }, /* 1049 */    
  1099. { single_op, "EXT.L"   , ACC_LONG, 0x01, 0x00, 1026 }, /* 1050 */
  1100. { single_op, "EXTB.L"  , ACC_LONG, 0x01, 0x00, 1026 }, /* 1051 */
  1101. { restrict , "SUBX.B"  ,   NO_ADJ, 0x03, 0x00, 1026 }, /* 1052 */
  1102. { restrict , "SUBX.W"  ,   NO_ADJ, 0x03, 0x00, 1026 }, /* 1053 */
  1103. { restrict , "SUBX.L"  ,   NO_ADJ, 0x03, 0x00, 1026 }, /* 1054 */
  1104. { link_l   , "LINK.L"  ,        0, 0x02, 0x00, 1026 }  /* 1055 */
  1105. };
  1106.